// import { DicService } from "@/services/dic"



// export default {
//     state:{
//         list:[]
//     },
//     effects:{
//         *init({},{call,put,select}){
//             //先用select函数拿到仓库中当前的list
//             let list =yield select(state=>state.dic.list)
//             //判断是不是初始化过，是就返回，不往后面走了
//             if(list.length>0){return}
//             //如果没有初始化过，把发ajax请求的函数放到call中，call会自动执行这个函数，并把结果返回给list
//             list = yield call(DicService.queryDicList);
//             //自己在调用put触发
//             yield put({type:"_init",payload:list})
//         }
//     },
//     reducers:{
//         _init(state,{payload:list}){
//             return {list}
//         }
//     }
// }


//dva 全局配置 dva仓库
// import {DicService} from '@/services/dic'
// export default{
//     namespace:"dic",
//     state:{
//         list:[]
//     },
//     effects:{  //作异步操作
//         *init({},{call,put,select}){
//             let list= yield select (state =>state.dic.list)
//             if(list.lenth>0) return 
//             list = yield call(DicService.queryDicList) //发axios
//             yield put({type:"_init" , playload:list}) 
//         }
//     },
//     reducers:{
//         //做同步操作
//         _init:(state,{playload:list})=>{
//             return {...state,list}
//         }
//     }
// }


//简单数据仓库
import { DicService } from '@/services/dic';
import { useCallback, useMemo, useState } from 'react';

export default()=>{

    const [list,setList] = useState<Array<API.DicInfo>>([])
    const staffCategory=useMemo(()=>list.filter(item=>item.dic_group_key==='staff_category'),[list])
    console.log(staffCategory);
    
    const qualification=useMemo(()=>list.filter(item=>item.dic_group_key==='qualification'),[list])
    const classMajor=useMemo(()=>list.filter(item=>item.dic_group_key==='class_major'),[list])
    const init = useCallback(async () => {
      if (list.length > 0) return;
      const data = await DicService.queryDicList();
      setList(data);
    }, [list]);
    
    return { init, staffCategory, qualification, classMajor };
}


